home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-28 | 3.9 KB | 129 lines |
- 10 'COILEQUA - Coil Equation Calculator - 30 NOV 95 rev. 27 SEP 96
- 20 CLS:KEY OFF
- 30 IF EX$=""THEN EX$="EXIT"
- 40 COLOR 7,0,1
- 50 PI=3.14159
- 60 A$="####.##"
- 70 UL$=STRING$(80,205)
- 80 '
- 90 '.....start
- 100 CLS
- 110 COLOR 15,2
- 120 PRINT " COIL EQUATION CALCULATOR";TAB(57);"by George Murphy VE3ERP ";
- 130 COLOR 1,0:PRINT STRING$(80,223);
- 140 COLOR 7,0
- 150 T=7
- 160 PRINT TAB(T);
- 170 PRINT "This program solves only the basic equations for close-wound single-"
- 180 PRINT TAB(T);
- 190 PRINT "layer air-core coils as they appear in recent editions of the ARRL"
- 200 PRINT TAB(T);
- 210 PRINT "HANDBOOK. There are several other HAMCALC programs for providing"
- 220 PRINT TAB(T);
- 230 PRINT "more specific inductance and coil design information."
- 240 PRINT UL$;
- 250 PRINT " Press number in < > to:
- 260 PRINT UL$;
- 270 PRINT " < 1 > calculate coil specifications for a given inductance"
- 280 PRINT " < 2 > calculate inductance of a specific coil"
- 290 PRINT UL$;
- 300 PRINT " < 0 > EXIT"
- 310 Z$=INKEY$
- 320 IF Z$="0"THEN CLS:RUN EX$
- 330 IF Z$="1"THEN X=0:GOTO 370
- 340 IF Z$="2"THEN X=1:GOTO 370
- 350 GOTO 310
- 360 '
- 370 '.....start
- 380 PRINT UL$;
- 390 PRINT " Press number in < > to choose standard units of measure:"
- 400 PRINT UL$;
- 410 PRINT " < 1 > Metric"
- 420 PRINT " < 2 > U.S.A./Imperial"
- 430 Z$=INKEY$
- 440 IF Z$="1"THEN UM=25.4:UM$=" mm.":GOTO 470
- 450 IF Z$="2"THEN UM=1:UM$=" in.":GOTO 470
- 460 GOTO 430
- 470 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 480 '
- 490 '.....data input
- 500 U=0:R=0:D=0:L=0:N=0:T=0:S=0
- 510 CLS
- 520 PRINT "INPUT known factors (if factor unknown, press <ENTER>):"
- 530 PRINT UL$;
- 540 IF U=0 AND X=0 THEN INPUT " Inductance (>H).................";U:GOSUB 660
- 550 IF R=0 AND X=0 THEN INPUT " Coil length-to-diameter ratio...";R:GOSUB 660
- 560 IF S=0 AND X=0 THEN PRINT " Turn spacing (";UM$;").............";
- 570 IF S=0 AND X=0 THEN INPUT S:S=S/UM:GOSUB 660
- 580 IF N=0 AND X=1 THEN INPUT " Number of turns.................";N:GOSUB 660
- 590 IF D=0 AND X=1 THEN PRINT " Coil diameter (";UM$;")............";
- 600 IF D=0 AND X=1 THEN INPUT D:D=D/UM:GOSUB 660
- 610 IF L=0 AND X=1 THEN PRINT " Coil length (";UM$;")..............";
- 620 IF L=0 AND X=1 THEN INPUT L:L=L/UM:GOSUB 660
- 630 IF T=0 AND X=1 THEN INPUT " Turns per inch..................";T:GOSUB 660
- 640 CLS:GOTO 520
- 650 '
- 660 '.....calculate
- 670 IF U=0 AND D*L*N>0 THEN U=(D^2*N^2)/(18*D+40*L)
- 680 IF R=0 AND L*D>0 THEN R=L/D:GOTO 660
- 690 IF R=0 AND N*T*D>0 THEN R=N/(D*T):GOTO 660
- 700 IF S=0 AND T>0 THEN S=1/T
- 710 IF S=0 AND L*N>0 THEN S=L/N:GOTO 660
- 720 IF S=0 AND R*D*N>0 THEN S=R*D/N:GOTO 660
- 730 IF L=0 AND R*D>0 THEN L=R*D:GOTO 660
- 740 IF L=0 AND N*T>0 THEN L=N/T:GOTO 660
- 750 IF L=0 AND N*S>0 THEN L=N*S:GOTO 660
- 760 IF D=0 AND L*R>0 THEN D=L/R:GOTO 660
- 770 IF D=0 AND N*R*T>0 THEN D=N/(R*T):GOTO 660
- 780 IF N=0 AND U*D*L>0 THEN N=SQR(U*(18*D+40*L))/D:GOTO 660
- 790 IF N=0 AND T*L>0 THEN N=T*L:GOTO 660
- 800 IF N=0 AND S*L>0 THEN N=L/S:GOTO 660
- 810 IF N=0 AND R*T*D>0 THEN N=R*T*D:GOTO 660
- 820 IF N=0 AND U*R*S>0 THEN 890
- 830 IF T=0 AND S>0 THEN T=1/S
- 840 IF T=0 AND N*L>0 THEN T=N/L:GOTO 660
- 850 IF T=0 AND N*R*D>0 THEN T=N/(R*D):GOTO 660
- 860 IF U*R*S*L*D*N*T>0 THEN 970
- 870 RETURN
- 880 '
- 890 '.....calculate coil size and number of turns by iteration
- 900 CLS:PRINT " .....ITERATING.....please wait....."
- 910 D=0.25 'initial coil diameter
- 920 L=R*D 'coil length where R= length-to-diameter ratio
- 930 N=SQR(U*(18*D+40*L))/D 'number of turns
- 940 IF (N*S)>L THEN D=D+0.000999999:GOTO 920 'where S= spacing between turns
- 950 GOTO 660
- 960 '
- 970 '.....print
- 980 CLS
- 990 PRINT " CLOSE-WOUND SINGLE-LAYER AIR-CORE COIL"
- 1000 PRINT UL$;
- 1010 IF UM=1 THEN A$=A$ ELSE A$="####.#"
- 1020 PRINT " INDUCTANCE..................";USING A$;U;:PRINT " >H"
- 1030 PRINT " Diameter....................";USING A$;D*UM;:PRINT UM$
- 1040 PRINT " Length......................";USING A$;L*UM;:PRINT UM$
- 1050 PRINT " Length-to-diameter ratio....";USING A$;R;:PRINT ":1"
- 1060 PRINT " Number of turns.............";USING A$;N
- 1070 PRINT " Turns per 25 mm (inch)......";USING A$;T
- 1080 PRINT " Turn spacing................";USING A$;S*UM;:PRINT UM$;" c.c."
- 1090 W=SQR((PI*D)^2+S^2)*N
- 1100 IF UM=25.4 THEN UM=2.54:UM$=" cm."
- 1110 PRINT " Amount of wire in coil......";USING A$;W*UM;:PRINT UM$
- 1120 PRINT UL$;
- 1130 GOSUB 1160
- 1140 GOTO 90
- 1150 '
- 1160 'HARDCOPY
- 1170 GOSUB 1280:LOCATE 25,2:COLOR 14,6
- 1180 PRINT " Press 1 to print screen, 2 to print screen & ";
- 1190 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 1200 Z$=INKEY$:IF Z$="3"THEN GOSUB 1280:RETURN
- 1210 IF Z$="1"OR Z$="2"THEN GOSUB 1280:GOTO 1230
- 1220 GOTO 1200
- 1230 FOR QX=1 TO 24:FOR QY=1 TO 80
- 1240 LPRINT CHR$(SCREEN(QX,QY));
- 1250 NEXT QY:NEXT QX
- 1260 IF Z$="2"THEN LPRINT CHR$(12)
- 1270 GOTO 1170
- 1280 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-